<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <th:block th:include="include :: header('表格打印配置')"/>
</head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 select-table table-striped">
            <!-- data-show-print设置为true为显示工具栏上的“打印”按钮。
                 data-print-as-filtered-and-sorted-on-ui为true时-在用户界面上按排序和过滤条件打印表格。请注意，如果设置为true以及用于过滤和排序的显式预定义打印选项（printFilter，printSortOrder，printSortColumn），则它们将应用于已由UI控件过滤和排序的数据。对于在UI上按过滤和排序方式打印数据-请勿设置以下3个选项：printFilter，printSortOrder，printSortColumn
                 data-print-page-builder 接收html <table>元素作为字符串参数，返回html字符串进行打印。用于样式和添加页眉或页脚。
                 data-print-sort-column 设置列字段名称以对打印表进行排序
                 data-print-sort-order 有效值：“ asc”，“ desc”。仅当设置了printSortColumn时相关
                 data-print-filter 设置值以按此列过滤打印的数据。
                 data-print-formatter 函数（值，行，索引）-返回字符串。格式化打印表中此列的单元格值。函数行为类似于“ formatter”列选项
                 printIgnore 设置为true可以在打印页面中隐藏此列。

                 更多详细参数请参考官网：https://bootstrap-table.com/docs/extensions/print
                 -->
            <table id="bootstrap-table"></table>
        </div>
    </div>
</div>
<div th:include="include :: footer"></div>
<th:block th:include="include :: bootstrap-table-print-js"/>
<script th:inline="javascript">
    var prefix = ctx + "demo/table";

    $(function () {
        var options = {
            url: prefix + "/list",
            showPrint: true,
            showSearch: false,
            showRefresh: false,
            showToggle: false,
            showColumns: false,
            printPageBuilder: printPageBuilder,
            columns: [{
                checkbox: true,
                printIgnore: true,//在打印页面中隐藏此列
            },
                {
                    field: 'userId',
                    title: '用户ID'
                },
                {
                    field: 'userCode',
                    title: '用户编号'
                },
                {
                    field: 'userName',
                    title: '用户姓名'
                },
                {
                    field: 'userPhone',
                    title: '用户手机'
                },
                {
                    field: 'userEmail',
                    title: '用户邮箱'
                },
                {
                    field: 'userBalance',
                    title: '用户余额'
                },
                {
                    title: '操作',
                    align: 'center',
                    printIgnore: true,//在打印页面中隐藏此列
                    formatter: function (value, row, index) {
                        var actions = [];
                        actions.push('<a class="btn btn-danger btn-xs" href="javascript:;" onclick="remove(this)"><i class="fa fa-remove"></i>删除</a>');
                        return actions.join('');
                    }
                }]
        };
        $.table.init(options);
    });

    // 假删除操作
    function remove(obj) {
        $.modal.confirm("确认要删除吗？", function () {
            $(obj).parents("tr").remove();
            $.modal.msgSuccess('已删除!');
        });
    }

    // 自定义打印页面模板
    function printPageBuilder(table) {
        return `
        	<html>
        	  <head>
        	  <style type="text/css" media="print">
        	  @page {
        	    size: auto;
        	    margin: 25px 0 25px 0;
        	  }
        	  </style>
        	  <style type="text/css" media="all">
        	  table {
        	    border-collapse: collapse;
        	    font-size: 12px;
        	  }
        	  table, th, td {
        	    border: 1px solid grey;
        	  }
        	  th, td {
        	    text-align: center;
        	    vertical-align: middle;
        	  }
        	  p {
        	    font-weight: bold;
        	    margin-left:20px;
        	  }
        	  table {
        	    width:94%;
        	    margin-left:3%;
        	    margin-right:3%;
        	  }
        	  div.bs-table-print {
        	    text-align:center;
        	  }
        	  </style>
        	  </head>
        	  <title>Print Table</title>
        	  <body>
        	  <div class="bs-table-print">${table}</div>
        	  </body>
        	</html>`
    }
</script>
</body>
</html>